﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpShare.Storage;
using SharpShare.Afp.Protocol.Security;
using System.IdentityModel.Policy;
using System.IdentityModel.Tokens;

namespace SharpShare.Afp.Protocol {
    public enum AfpSessionSearchType {
        ClientIssued,
        ServerIssued
    };

    public interface IAfpServer {
        IList<IStorageProvider> Shares { get; }

        IAfpUserAuthenticationMethod GetAuthenticationMethod(string name);

        IAfpSession FindSession(AfpToken token, AfpSessionSearchType type);

        AfpServerSettings Settings { get; }

        string LoginMessage { get; set; }

        AfpResultCode HandleCommandException(Exception ex);

        IAfpUserManager UserManager { get; }
    }
}
